package com.iotstudio.embeddedcloudplatform.service;

import com.iotstudio.embeddedcloudplatform.POJO.DO.Permission;
import com.iotstudio.embeddedcloudplatform.POJO.DO.User;
import com.iotstudio.embeddedcloudplatform.POJO.DO.UserAuth;
import com.iotstudio.embeddedcloudplatform.POJO.VO.ResultVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 用户service
 * @author BeFondOfTaro
 * Created at 17:39 2018/1/19
 */
public interface UserService {

    /**
     * 注册
     * @param user 用户信息
     * @param userAuth 用户身份认证信息
     * @param roleId 角色id
     * @return
     */
    ResultVO register(User user, UserAuth userAuth, String roleId);

    /**
     * 登录
     * @param identifyType 登录认证类型
     * @param identifier 登录用户标识
     * @param credential 登陆凭证
     * @return
     */
    ResultVO login(HttpServletResponse response, Integer identifyType, String identifier, String credential);

    /**
     * 注销
     * @return
     */
    ResultVO logout();

    /**
     * 根据用户id查询所有权限
     * @param userId 用户id
     * @return 权限列表
     */
    List<Permission> listPermissionByUserId(String userId);

    /**
     * 删除用户
     * @param userId 用户id
     */
    void deleteUser(String userId);

    /**
     * 编辑用户
     */
    User editUser();
    /**
     * 通过userId获取其下的sensorId
     */
    List<String> getSensorId(String userId);
}
